package com.tedu.day02.oop;

/**
 * 继承关系---多态性
 * 作用父子级关系，实现方法互通【重写】
 */
class A1{
    public void tell1(){
        System.out.println("A,你好我是勾");
    }
    public void tell2(){
        System.out.println("A---我是2");
    }
}
class B1 extends A1{
    public void tell2(){
        System.out.println("你好--我是tell2");
    }
    public void tell3(){
        System.out.println("你好--我是tell3");
    }
}
public class 多态 {
    public static void main(String[] args) {
        //创建一个对象 B1 b=new B(); 【不存在多态，没有造型】
//        B1 b=new B1();
//        A1 a=b; //子类交给父类保存   向上造型
//        //实现方法互通
//        a.tell1();  //父类中的方法
//        a.tell2(); //重写:方法之间的互通
        //向下造型：实现方法的互通，调用父类和子类的的方法
        //1.向上造型一次，父类引用指向之类对象
        A1 a=new B1();
        //子类接收向上造型一次的引用,并且强转
        B1 b=(B1)a;
        b.tell1();  //父类的方法
        b.tell2();  //重写父类的方法，输出子类
        b.tell3();  //子类的方法
    }
}
